home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et-2_2.lha / et2.2 / src / Metric.h < prev    next >
C/C++ Source or Header  |  1990-12-20  |  1KB  |  72 lines

  1. #ifndef Metric_First
  2. #ifdef __GNUG__
  3. #pragma once
  4. #endif
  5. #define Metric_First
  6.  
  7. #include "Point.h"
  8.  
  9.  
  10. class Metric {
  11. public:
  12.     Point extent;
  13.     short base;
  14.  
  15. public:
  16.  
  17.     Metric();
  18.     
  19.     Metric(Point e, short b);
  20.     
  21.     Metric(Point e);
  22.  
  23.     Metric(int w);
  24.  
  25.     Metric(int w, int h);
  26.     
  27.     Metric(int w, int h, int b);
  28.  
  29.     Metric(const Metric&);
  30.  
  31.     Point Extent()
  32.     { return extent; }
  33.     
  34.     int Width()
  35.     { return extent.x; }
  36.     
  37.     int Height()
  38.     { return extent.y; }
  39.     
  40.     int Base()
  41.     { return base; }
  42.     
  43.     Metric Inset(Point);
  44.     
  45.     Metric Expand(Point);
  46.     
  47.     Metric Merge(const Metric&);
  48.     Metric Cat(Direction d, const Metric &m, const Point &gap);
  49.     
  50.     operator Point()
  51.        { return extent; }
  52.     
  53.     friend Metric HCat(const Metric&, const Metric&, int hgap= 0);
  54.     friend Metric VCat(const Metric&, const Metric&, int vgap= 0);
  55.     friend Metric Cat(Direction d, const Metric&, const Metric&, Point gap= gPoint0);
  56.  
  57.     friend bool operator== (const Metric &m1, const Metric &m2)
  58.     { return (bool) (m1.extent == m2.extent && m1.base == m2.base); }
  59.  
  60.     friend bool operator!= (const Metric &m1, const Metric &m2)
  61.     { return (bool) (m1.extent != m2.extent && m1.base != m2.base); }
  62.  
  63.     friend Metric Min (const Metric&, const Metric&);
  64.  
  65.     friend Metric Max (const Metric&, const Metric&);        
  66. };
  67.  
  68. SimpleMetaDef(Metric);
  69.  
  70.  
  71. #endif Metric_First
  72.